/**
 * 
 */
package neptune.web.client.model;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * @author Roberto Bifulco [info@robertobifulco.it, robertobifulco.it]
 * 
 */
public class SerializableExperimentState implements IsSerializable {

	public static final String UNDEFINED = "UNDEFINED";
	public static final String DEFINED = "DEFINED";
	public static final String ALLOCATED = "ALLOCATED";
	public static final String WAITING = "WAITING";
	public static final String RUNNING = "RUNNING";

	/**
	 * Identificativo dello stato dell'esperimento
	 */
	private String state;
	/**
	 * Timestamp del momento di primo avvio dell'esperimento
	 */
	private long startTimestamp;
	/**
	 * Tempo totale di esecuzione dell'esperimento
	 */
	private long totalExecutionTime;
	/**
	 * Timestamp dello stop dell'esperimento
	 */
	private long stopTimestamp;
	/**
	 * Timestamp della creazione dell'esperimento
	 */
	private long creationTimestamp;

	/**
	 * @return the state
	 */
	public String getState() {
		return state;
	}

	/**
	 * @param state
	 *            the state to set
	 */
	public void setState(String state) {
		this.state = state;
	}

	/**
	 * @return the startTimestamp
	 */
	public long getStartTimestamp() {
		return startTimestamp;
	}

	/**
	 * @param startTimestamp
	 *            the startTimestamp to set
	 */
	public void setStartTimestamp(long startTimestamp) {
		this.startTimestamp = startTimestamp;
	}

	/**
	 * @return the totalExecutionTime
	 */
	public long getTotalExecutionTime() {
		return totalExecutionTime;
	}

	/**
	 * @param totalExecutionTime
	 *            the totalExecutionTime to set
	 */
	public void setTotalExecutionTime(long totalExecutionTime) {
		this.totalExecutionTime = totalExecutionTime;
	}

	/**
	 * @return the stopTimestamp
	 */
	public long getStopTimestamp() {
		return stopTimestamp;
	}

	/**
	 * @param stopTimestamp
	 *            the stopTimestamp to set
	 */
	public void setStopTimestamp(long stopTimestamp) {
		this.stopTimestamp = stopTimestamp;
	}

	/**
	 * @return the creationTimestamp
	 */
	public long getCreationTimestamp() {
		return creationTimestamp;
	}

	/**
	 * @param creationTimestamp
	 *            the creationTimestamp to set
	 */
	public void setCreationTimestamp(long creationTimestamp) {
		this.creationTimestamp = creationTimestamp;
	}

}
